

type ViewComponentType = 'eInput' | 'eSelect' | 'eDate' | 'eDateRange'
  | 'eRadio' | 'eRadioGroup' | 'eCheckbox' | 'eCheckboxGroup' | 'eInputNumber'
  | 'eSwitch';

type GlobalComponentType = 'CodeEditor' | 'DataSource' | 'ColumnSetting' | 'DataWatcher'
  | 'DataRule' | 'TabpaneSetting' | 'TableColumnSetting'

export type ComponentType = ViewComponentType | GlobalComponentType

export interface IComponentConfig {
  type: string,
  component: ComponentType,
  label?: string,
  model: string,
  props?: any,
  defaultValue: any
}

export enum ChannelEnum {
  PC = 'pc',
  MOBILE = 'mobile'
}


export interface IBaseComponent {
  drag: any
  props: IComponentConfig[]
  events: IComponentConfig[]
  dataModel: any
  slots: IComponentConfig[]
  watch: any
  lifeCircle: any
  style: any
}